import gmpy2
import libnum
import sympy

e = 65537
phi = 98229890689284912089157469320766533791995454910192245906925225670195818406213091522014617153508961926275340781138620279250871290490873820930414041953789279215193143006258942396087516751221787778485548659324564021606857623517821094138942269722883193348321303203233297445863729579811837657596605227772947768080
c = 20962649632855841088231373617057756055795073764826640468523117901947795570191538819434503909156672490273164571512993513456958532656058586024929659925126633909116178539998046336126716552474329852733455142305774551889295732464058882055828240152313078876041502758035842268176085433166898402827107253041748761839
p1 = 9278107621912111502897373552245845971739215588186465664496052995069919521787577753719495078780428864673954897367324663969013147023292682927178810784000630
q1 = 1888254482465757731585051308443185269531054824465971018646930721602120686960471254468405491101133069657301849498853283496490197246867160626826664577479894

p = sympy.symbols('p')
q = sympy.symbols('q')
f1 = p1 * p + q1 * q - 1 - p * q
f2 = (p - 1) * (q - 1) - phi
pq = sympy.solve([f1, f2], [p, q])
p = (pq[1][0])
q = (pq[1][1])
n = p * q
d = gmpy2.invert(e, phi)
m = pow(c, int(d), int(n))
print(libnum.n2s(int(m)))
